/*
 * MapperSolitudAyudantia.java
 *
 * Created on August 15, 2007, 7:11 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package hero.mapper;

import hero.interfaces.BnRoleLocal;
import hero.util.HeroException;
import java.util.*;
/**
 *
 * @author kabad
 */
public class MapperSolitudAyudantia implements hero.mapper.RoleMapperI {
    final String solicitarSerAyudante="Solicitar Ser Ayudante";
    final String solicitarAyudantes="Solicitar Ayudantes";
      final String solicitarCambio="Solicitar Cambio de Carrera o Especializacion";
    
    /** Creates a new instance of MapperSolitudAyudantia */
    public MapperSolitudAyudantia() {
    }
    public Collection searchMembers(Object b,BnRoleLocal n, String userName) throws HeroException {
        Collection users = new ArrayList();
        String roleName=n.getName().toLowerCase();
        String nombreInstanciaProyecto=n.getBnProject().getName();
        int indice =nombreInstanciaProyecto.indexOf("_");
        String nombreModeloProyecto = nombreInstanciaProyecto.substring(0, indice);
        
        System.out.println("nombreModeloProyecto: "+ nombreModeloProyecto);
        System.out.println("********************************************");
        System.out.println("Maper: MapperSolitudAyudantia");
        System.out.println("Instancia Proyecto: "+nombreInstanciaProyecto);
        System.out.println("Creador: "+userName);
        System.out.println("Rol: "+ roleName);

        /*******************************************************************
         *Esto es para ver si pertenece al Modelo de Proceso solicitarSerAyudante
         *******************************************************************/
        if(nombreModeloProyecto.equals(solicitarSerAyudante)){
            System.out.println("Modelo Proyecto: "+nombreModeloProyecto);
            if(roleName.equals("estudiante")){
                users.add(n.getBnProject().getCreator());
            }
        }
        /*************************************************************
         *Esto es para ver si pertenece al Modelo de Proceso SolicitarAyudantes
         *********************************************************************/
       if(nombreModeloProyecto.equals(solicitarAyudantes)){
            System.out.println("Modelo Proyecto: "+nombreModeloProyecto);
            if(roleName.equals("profesor")){
               users.add(n.getBnProject().getCreator());
                System.out.println("profesor");
            }else if(roleName.equals("decano")){
                users.add("kabad");
                System.out.println("decano");
            }else if(roleName.equals("secretaria")){
                users.add("lrivas");
                System.out.println("secretaria");
            }
            System.out.println("+++++++");
        }
        
         /*************************************************************
         *Esto es para ver si pertenece al Modelo de Proceso Solicitar cambio carrera
         *********************************************************************/
        if(nombreModeloProyecto.equals(solicitarCambio)){
            System.out.println("Modelo Proyecto: "+nombreModeloProyecto);
            if(roleName.equals("estudiante")){
               users.add(n.getBnProject().getCreator());
            }else if(roleName.equals("subdecano")){
                users.add("kabad");
                
            }else if(roleName.equals("secretaria")){
                users.add("lrivas");
             }else if(roleName.equals("coordinadorcarreranueva")){
//                Collection c= n.getBnProject().getBnProperties();
//                for (Object elem : c) {
//                    System.out.println("elem :" + c);
//                }
                users.add("atapia");
                users.add("cabad");
                users.add("guido");
                users.add("javiles");
                users.add("restrada");
                users.add("amanzur");
                users.add("ahanze");
                users.add("lfreire");
                users.add("aespinal");
            }
        }
        
        System.out.println("################################");
        return users;
        
        
    }
}
